home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 26 / Cream of the Crop 26.iso / program / ddj0897.zip / DYN401.ZIP / examples / exam33 / main.c < prev    next >
C/C++ Source or Header  |  1995-09-27  |  4KB  |  184 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6. /*
  7.  *
  8.  *    This source code is CONFIDENTIAL and
  9.  *    PROPRIETARY to Algorithms Corporation. Unauthorized
  10.  *    distribution, adaptation or use    may
  11.  *    be subject to civil and    criminal penalties.
  12.  *
  13.  *    Copyright (c) 1993 Algorithms Corporation
  14.  *    3020 Liberty Hills Drive
  15.  *    Franklin, TN  37064
  16.  *
  17.  *    ALL RIGHTS RESERVED.
  18.  *
  19.  *
  20.  *
  21.  */
  22.  
  23.  
  24.  
  25. #include "generics.h"
  26.  
  27.  
  28. main(int argc, char *argv[])
  29. {
  30.     object    a, b, c;
  31.  
  32.  
  33.     InitDynace(&argc);
  34.  
  35.     /*  I must use the garbage collector because I am not manually
  36.         disposing of the objects I will be creating.  */
  37.     
  38.     gSetMemoryBufferArea(Dynace, 50000L);
  39.  
  40.  
  41.     /*  Note that you can initialize the string with either a C string
  42.         or an instance of the String class.  */
  43.  
  44.     a = gNewWithStr(String, "string 1");
  45.     b = gNewWithObj(String, a);
  46.     c = gNewWithStr(String, "string 3");
  47.  
  48.     gPrint(a, stdoutStream);
  49.     gPrint(b, stdoutStream);
  50.     gPrint(c, stdoutStream);
  51.  
  52.     printf("\nChangeValue\n");
  53.     gChangeStrValue(b, "string 2");
  54.     gPrint(b, stdoutStream);
  55.     gDispose(b);
  56.     
  57.  
  58.     /*  This demonstrates how the memory compactor (MA_compact) may
  59.         move a string to compact memory usage.  This test works because
  60.         we deleted object b which was between objects a and c.  */
  61.     
  62.     printf("\nMA_compact\n");
  63.     gPrint(a, stdoutStream);
  64.     printf("c string = %ld\n", (long) gStringValue(c));
  65.     gPrint(c, stdoutStream);
  66.     MA_compact();
  67.     gPrint(a, stdoutStream);
  68.     printf("c string = %ld\n", (long) gStringValue(c));
  69.     gPrint(c, stdoutStream);
  70.  
  71.     printf("\nSprintf\n");
  72.     gPrint(vSprintf(String, "s=%s, f=%f", "Hello there", 3.141), stdoutStream);
  73.  
  74.     /*  Note that the argument list to vBuild MUST ALWAYS end with a
  75.         NULL!!  */
  76.     printf("\nClass Build\n");
  77.     gPrint(vBuild(String, "Hello there ", a, NULL), stdoutStream);
  78.  
  79.     printf("\nStringValue\n%s\n", gStringValue(a));
  80.  
  81.     printf("\nCompare\n");
  82.     printf("%d\n", gCompare(a, (object) "string 1"));
  83.     printf("%d\n", gCompare(a, gNewWithStr(String, "string 1")));
  84.     printf("%d\n", gCompare(a, c));
  85.     printf("%d\n", gCompare(c, a));
  86.     printf("%d\n", gCompareI(a, (object) "stRing 1"));
  87.     printf("%d\n", gCompareN(a, (object) "str", 3));
  88.  
  89.     printf("\nEqual\n");
  90.     b = gNewWithStr(String, "A Test");
  91.     printf("%d\n", gEqual(b, (object) "A Test"));
  92.     printf("%d\n", gEqual(b, gNewWithStr(String, "A Test2")));
  93.     printf("%d\n", gEqual(b, gNewWithStr(String, "A Test")));
  94.  
  95.     printf("\nLength = %d\n", gSize(a));
  96.  
  97.     printf("\nAppend\n");
  98.     gAppend(a, (object) " Appended");
  99.     gAppend(a, gNewWithStr(String, " Twice"));
  100.     gPrint(a, stdoutStream);
  101.  
  102.     /*  Note that the argument list to vBuild MUST ALWAYS end with a
  103.         NULL!!  */
  104.     printf("\nBuild\n");
  105.     vBuild(a, c, "Part 2", gNewWithStr(String, " Part 3"), NULL);
  106.     vBuild(a, NULL, " The last part", NULL);
  107.     gPrint(a, stdoutStream);
  108.  
  109.     printf("\nCharacter 8 = %c\n", gCharValueAt(a, 8));
  110.     gChangeCharAt(a, 8, 'X');
  111.     printf("Character 8 = %c\n", gCharValueAt(a, 8));
  112.  
  113.     printf("\nCase conversion\n");
  114.     gToLower(a);
  115.     gPrint(a, stdoutStream);
  116.     gToUpper(a);
  117.     gPrint(a, stdoutStream);
  118.  
  119.     printf("\nSubString\n");
  120.     gPrint(gSubString(a, 8, 4), stdoutStream);
  121.  
  122.     printf("\nTake/Drop\n");
  123.     gTake(a, 8);
  124.     gPrint(a, stdoutStream);
  125.     gDrop(a, -1);
  126.     gPrint(a, stdoutStream);
  127.     gTake(a, -20);
  128.     gPrint(a, stdoutStream);
  129.  
  130.     /*  Since the following methods modify the string object I always
  131.         use a copy so I don't have to keep recreating the original.
  132.         Note that I am depending on the garbage collector to get rid
  133.         of the unneeded intermediate objects.  */
  134.  
  135.     printf("\nStrip/Justify\n");
  136.     a = gNewWithStr(String, "STRING");
  137.     gTake(a, -16);
  138.     gTake(a, 55);
  139.     gPrint(a, stdoutStream);
  140.     gPrint(gStripLeft(gCopy(a)), stdoutStream);
  141.     gPrint(gStripRight(gCopy(a)), stdoutStream);
  142.     gPrint(gStripCenter(gCopy(a)), stdoutStream);
  143.     gPrint(gJustifyLeft(gCopy(a)), stdoutStream);
  144.     gPrint(gJustifyRight(gCopy(a)), stdoutStream);
  145.     gPrint(gJustifyCenter(gCopy(a)), stdoutStream);
  146.  
  147.  
  148. #ifdef    EXTRA
  149.     printf("\nProcess\n");
  150.     a = gNewWithStr(String, "\\tHello\\tThere\\nNext line\\a");
  151.     printf("\nPrint Length = %d\n", gPrintLength(a));
  152.     gPrint(a, stdoutStream);
  153.     gProcess(a);
  154.     gPrint(a, stdoutStream);
  155. #endif
  156.     
  157.     return 0;
  158. }
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166. /*
  167.  *
  168.  *    This source code is CONFIDENTIAL and
  169.  *    PROPRIETARY to Algorithms Corporation. Unauthorized
  170.  *    distribution, adaptation or use    may
  171.  *    be subject to civil and    criminal penalties.
  172.  *
  173.  *    Copyright (c) 1993 Algorithms Corporation
  174.  *    3020 Liberty Hills Drive
  175.  *    Franklin, TN  37064
  176.  *
  177.  *    ALL RIGHTS RESERVED.
  178.  *
  179.  *
  180.  *
  181.  */
  182.  
  183.  
  184.